//
//  BXBaseViewController.swift
//  01-weibo(swift)
//
//  Created by EDZ on 2017/8/8.
//  Copyright © 2017年 EDZ. All rights reserved.
//

import UIKit

/**
 class BXBaseViewController: UIViewController , UITableViewDelegate,UITableViewDataSource{
 // 面试题: OC 中支持多继承吗 如果不支持,如何替代 答案:适用协议替代
 // swift 的写法更类似于多继承
 
 // 注意:
    1.extension 中不能有属性
    2.extension 中不能重写父类方法!重写父类方法,是子类的职责,扩展是对类的扩展!
 */
class BXBaseViewController: UIViewController {
    // 表格视图 - 如果用户没有登录,就不创建
    var tableView: UITableView?
    
    
    // 自定义导航条
    var navigationBar = UINavigationBar(frame: CGRect(x: 0, y: 0, width: UIScreen.cz_screenWidth(), height: 64))
    // 自定义的导航条目
     lazy var navItem = UINavigationItem()
    
    override func viewDidLoad() {
        super.viewDidLoad()

        setupUI()
        loadData()
    }
    
    override var title: String? {
        didSet{
            navItem.title = title
        }
    }
    
    // 加载数据 - 具体的实现由子类负责
    func loadData() {
        
    }
    
    
}

// MARK: - 设置背景颜色
extension BXBaseViewController{
    
    
    internal func setupUI() {
        view.backgroundColor = UIColor.cz_random()
        
        // 取消自动缩进 - 如果隐藏了导航栏,会缩进 20 个点
        automaticallyAdjustsScrollViewInsets = false
        
        setupNavigationBar()
        setupTableView()
    }
    // 设置表格视图
    fileprivate func setupTableView() {
        tableView = UITableView(frame: view.bounds, style: .plain)
        tableView?.dataSource = self
        tableView?.delegate = self
        view.insertSubview(tableView!, belowSubview: navigationBar)
        
        // 设置内容缩进
        tableView?.contentInset = UIEdgeInsets(top: navigationBar.bounds.height, left: 0, bottom: 0, right: 0)
    }
    
    
    // 设置导航条
    private func setupNavigationBar() {
        // 添加导航条
        view.addSubview(navigationBar)
        // 将 item 设置给 bar
        navigationBar.items = [navItem]
        // 设置 navBar 的渲染颜色
        navigationBar.barTintColor = UIColor.cz_color(withHex: 0xF6F6F6)
        // 设置 navBar 的字体颜色
        navigationBar.titleTextAttributes = [NSForegroundColorAttributeName: UIColor.darkGray]

    }
    
}


// MARK: -UITableViewDelegate,UITableViewDataSource
extension BXBaseViewController: UITableViewDataSource,UITableViewDelegate{
    
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 0
    }
    
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        return UITableViewCell()
    }
    
}
